#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define ra 7
#define nome 25
#define cidade 16
#define tel 9
#define tel_alt 9
#define sexo 2
#define curso 3
#define fim "#"
#define bar "|"
#define tam 70
#define lf "\n"
#define ferro "Erro ao abrir o arquivo\n"
#define fera "Campo RA obrigatorio faltando\n"


typedef struct cadastro_unicamp
{
  char sra[7];
  char snome[25];
  char scidade[16];
  char stel[9];
  char stel_alt[9];
  char ssexo[2];
  char scurso[3];
} cadastro,*cad;


int escreve(cad strut)
{
  FILE *new_file;
  new_file = fopen("LB02GRUPO14_1_SoSep.txt", "a+");
  if (new_file==NULL)
  {
    printf(ferro);
    fclose (new_file);
    return 0;
  }

  else{
//ra
    fputs (strut->sra, new_file);
    fputs (bar, new_file);

//nome
    fputs (strut->snome, new_file);
    fputs (bar, new_file);
    if(strlen(strut->scidade)!=0)
    {
//cidade      
      fputs (strut->scidade, new_file);
      fputs (bar, new_file);
      }
    else
      fputs (bar, new_file);
    if(strlen(strut->stel)!=0)
    {
//tel
      fputs (strut->stel, new_file);
      fputs (bar, new_file);
    }
    else
      fputs (bar, new_file);    
    
    if(strlen(strut->stel_alt)!=0)
    {
//tel_alt
      fputs (strut->stel_alt, new_file);
      fputs (bar, new_file);
    }
    else
      fputs (bar, new_file);    
//sexo
    fputs (strut->ssexo, new_file);
    fputs (bar, new_file);
//curso
    fputs (strut->scurso, new_file);
    fputs (bar, new_file);    
//#
    fputs (fim, new_file);         
    fputs (lf, new_file);         
  }
  fclose (new_file);
  return 1;
}

////////////////////////////////////////////////////////////////////////

int main()
{
  FILE *ap_file, *new_file;
  int i=0,t=0,func;
  cad pessoa;
  pessoa = (cad)malloc(sizeof(cadastro));
  
  ap_file = fopen("LB02GRUPO14_1.txt", "r+");
  if (ap_file==NULL)
  {
    printf(ferro);
    fclose (ap_file);
    return 0;
  }
  fseek(ap_file, 0, SEEK_END);
  t = ftell(ap_file);
  printf ("tamanho do arquivo %d\n", t);
  fseek(ap_file,0 , SEEK_SET);
  //numero de registros
  t = t / 69;

  while(i<t)
  {
//ra
    fgets (pessoa->sra, ra, ap_file); 
    fseek(ap_file,1, SEEK_CUR);
//nome
    fgets (pessoa->snome, nome, ap_file); 
//cidade
    fgets (pessoa->scidade, cidade, ap_file); 
//tel
    fgets (pessoa->stel, tel, ap_file); 
    fseek(ap_file,1, SEEK_CUR);
//tel_alt
    fgets (pessoa->stel_alt, tel_alt, ap_file); 
    fseek(ap_file,1, SEEK_CUR);
//sexo
    fgets (pessoa->ssexo, sexo, ap_file); 
    fseek(ap_file,1, SEEK_CUR);
//curso
    fgets (pessoa->scurso, curso, ap_file); 

    pessoa->sra[6]='\0';
    pessoa->snome[24]='\0';
    pessoa->scidade[15]='\0';
    pessoa->stel[8]='\0';
    pessoa->stel_alt[8]='\0';
    pessoa->ssexo[1]='\0';
    pessoa->scurso[2]='\0';
/* 
  printf("%s.\n", pessoa->sra);
  printf("%s.\n", pessoa->snome);
  printf("%s.\n", pessoa->scidade);
  printf("%s.\n", pessoa->stel);
  printf("%s.\n", pessoa->stel_alt);
  printf("%s.\n", pessoa->ssexo);
  printf("%s.\n", pessoa->scurso);
*/

//funcao de arrumar a struct AQUI
//insere no arquivo de saida
    func=escreve(pessoa);
    if(func==0){
      printf(ferro);
    }
    fseek(ap_file,3, SEEK_CUR);
    i++;
  }
  fclose(ap_file);
 //s system("PAUSE");
  return 0;
}
